Puntatore: SUPER
Il SUPER pointer è una variabile speciale che viene utilizzata per la programmazione orientata agli oggetti.
SUPER è il puntatore di un blocco funzione all'istanza del blocco funzione di base da cui è stato generato il blocco funzione. Il SUPER pointer consente inoltre di accedere all'implementazione dei metodi del blocco funzione di base (classe base). UN SUPER il puntatore è automaticamente disponibile per ogni blocco funzione. Puoi usare SUPER solo nei metodi e nelle implementazioni dei blocchi funzione associati.
Dereferenziazione del puntatore: SUPER^
Usando il SUPER puntatore: Con il SUPER parola chiave, si chiama un metodo valido nell'istanza della classe base o della classe genitore.
ST
SUPER^.METH_DoIt();
FBD/CFC/LD

Uso di SUPER e THIS puntatori
FUNCTION_BLOCK FB_Base
VAR_OUTPUT
iCnt : INT;
END_VAR
METHOD METH_DoIt : BOOL
iCnt := -1;
METHOD METH_DoAlso : BOOL
METH_DoAlso := TRUE;
FUNCTION_BLOCK FB_1 EXTENDS FB_Base
VAR_OUTPUT
iBase : INT;
END_VAR
THIS^.METH_DoIt(); //Call of the methods of FB_1
THIS^.METH_DoAlso();
SUPER^.METH_DoIt(); //Call of the methods of FB_Base
SUPER^.METH_DoAlso();
iBase := SUPER^.iCnt;
METHOD METH_DoIt : BOOL
iCnt := 1111;
METH_DoIt := TRUE;
PROGRAM PLC_PRG
VAR
myBase : FB_Base;
myFB_1 : FB_1;
iTHIS : INT;
iBase : INT;
END_VAR
myBase();
iBase := myBase.iCnt;
myFB_1();
iTHIS := myFB_1.iCnt;Suggerimento
THIS non è ancora implementato per l'elenco di istruzioni (IL).